P H P - Personal Home Page
8. ordner und dateien
8.9 zeichensatz für datei-ein/ausgabe
Bei der darstellung von geschlossenen umlauten und einigen sonderzeichen (€, §, °, ², ³, µ) gibt es oft probleme. Im sog. Unicode (utf-8) sind diese zeichen mit zwei bytes verschlüsselt. Man vermeidet probleme mit diesen zeichen, wenn man sicherstellt, dass der zeichensatz mit dem eine seite erstellt wurde der gleiche ist, der im header der seite vereinbart wird. Die HTML- beschreibung enthält dazu details (siehe dort ziffer 2.5). Wenn es sich um den zeichensatz Unicode handelt, wird eine ausgabe-datei mit diesem zeichensatz erstellt und eine eingabe-datei wird problemlos verarbeitet, wenn sie ebenfalls im Unicode erstellt wurde. Wurde die eingabe-datei mit Ansicode erstellt, gibt es probleme. Wenn konsequent überall mit Ansicode gearbeitet wird, sollte es eigentlich keine probleme geben, aber leider stimmt das nicht (mehr), weil viele provider, bei denen man eine homepage hostet, diesen code sehr häßlich behandeln.
Das nachstehende beispiel zeigt die darstellung von zwei inhaltlich gleichen eingabe-dateien, von denen die erste im Ansicode und die zweite im Unicode erstellt wurde. Die dateien sind einfache textdateien mit zeilenende-zeichen und werden mit fgets eingelesen. Bei der Ansicode-datei können die geschlossenen umlaute und die o.g. sonderzeichen nicht dargestellt werden. Das beispiel zeigt noch mehr: maskierte zeichen werden immer richtig dargestellt und das tabulator-zeichen wird durch zwischenraum ersetzt, bewirkt aber sonst nichts. Das gilt für alle steuerzeichen.
inhalt der datei
diese datei ist mit dem zeichensatz Ansicode erstellt
und enthält sonderzeichen und umlaute
! $ % & / ( ) = ? @ + - #
Ä Ö Ü ä ö ü € § ° ² ³ µ
maskiert: Ä ä €
mit tabulator: tab ÄÖÜäöü ABC XYZ
inhalt der datei
diese datei ist mit dem zeichensatz Unicode erstellt
und enthält sonderzeichen und umlaute
! $ % & / ( ) = ? @ + - #
Ä Ö Ü ä ö ü € § ° ² ³ µ
maskiert: Ä ä €
mit tabulator: ÄÖÜäöü ABC XYZ
Im einfachsten fall behebt man das problem, indem man die eingabedatei mit hilfe eines geeigneten editors von Ansicode in Unicode umcodiert. Aber wenn das nicht möglich ist oder die seite aus welchen gründen auch immer eine seite eingaben sowohl in Unicode wie in Ansicode verabeiten soll, dann beginnt eine arge bastelei. Das folgende beispiel zeigt das.
 beispiel
Die dateien werden wie zuvor mit fgets eingelesen und dann
zeilenweise mit der funktion UMSETZ umcodiert. Wenn umlaute und die
o.g. sonderzeichen im Ansicode codiert sind werden sie durch die
entsprechenden 2-byte-zeichen des Unicode ersetzt. Liegen die zeichen
im Unicode vor, wird das erste byte abgeschnitten und dann das
passende zeichen im Unicode eingefügt (das scheint umständlich, vereinfacht
aber die prozedur). Alle steuerzeichen werden unterdrückt, mit ausnahme des
tabulator-zeichens, das so durch geschützte leerzeichen ersetzt wird, dass
nachfolgender text auf die positionen 8, 16, 24 usw. kommt.
inhalt der datei
diese datei ist mit dem zeichensatz Ansicode erstellt
und enthält sonderzeichen und umlaute
! $ % & / ( ) = ? @ + - #
Ä Ö Ü ä ö ü € § ° ² ³ µ
maskiert: Ä ä €
mit tabulator: tab ÄÖÜäöü ABC XYZ
inhalt der datei
diese datei ist mit dem zeichensatz Unicode erstellt
und enthält sonderzeichen und umlaute
! $ % & / ( ) = ? @ + - #
Ä Ö Ü ä ö ü € § ° ² ³ µ
maskiert: Ä ä €
mit tabulator: ÄÖÜäöü ABC XYZ
H T M L |
C S S |
p h p |
My S Q L |
JAVASCRIPT |
impressum
Für den inhalt der homepage hartard-bernhard.de
ist im sinne des pressegesetzes verantwortlich:
Bernhard Hartard
Gerhart-Hauptmann-Ring 18
81737 München
089 / 670 39 90
familie.hartard@t-online.de
salvatorische erklärung
Die seiten meiner homepage enthalten links
zu anderen seiten im Internet, auf deren gestaltung und inhalt ich
keinen einfluss habe. Ich übernehme keine gewähr für den inhalt der
verlinkten seiten, rechtsverstöße waren für mich zum zeitpunkt der
verlinkung auf diesen seiten nicht erkennbar, eine ständige inhaltliche
kontrolle der verlinkten seiten ist mir weder möglich noch zumutbar.
Aus rechtlichen gründen distanziere ich mich ausdrücklich vom inhalt
der verlinkten seiten und mache mir deren inhalt nicht zu eigen.
Diese erklärung gilt für alle auf meinen seiten angezeigten links.
CLOSE anzeige schließen
start
Damit startet die homepage neu, d.h. der Steinbeisser treibt wieder sein unwesen.
anfang
Hier beginnen die informationen dieser homepage
zur person
Hier findet man informationen zur person des verfassers dieser homepage, wer er ist, woher er kommt, was er gelernt hat und was er im verlauf seines lebens so getrieben hat.
spiele
Hier finden man einige spiele, aber keine wüsten ballerspiele, sondern einige echte knobeleien (hirn-jogging), zwei gesellschaftsspiele (Mensch ärgere Dich nicht, Kniffel) und das spiel aller frechen schüler: schiffe versenken.
galerien
Ein wenig heimatliebe muss erlaubt sein und deshalb findet man hier einige bildergalerien von Speyer und von seinem Dom.
backbuch
Das ist eine sammlung von backrezepten, aus verschiedenen quellen zusammengetragen und fast alle mit mehr oder weniger erfolg ausprobiert. Da findet man in den endlosen weiten des Internet natürlich mehr und besseres.
stammbaum
Das gehört eigentlich in den privaten bereich dieser homepage, denn hier wird der stammbaum des verfassers der homepage gezeigt. Weil aber beim testen der anwendung auch der stammbaum der Wittelsbacher entstanden ist, wurde beides hier veröffentlicht. Vielleicht interessiert es jemand.
exit
Hier kann man Google oder eine beliebige seite im Internet aufrufen oder diese homepage verlassen.
kontakt
Hier kann man dem verfasser und eigentümer der homepage eine email schreiben.
privat
Hier kommt man in den privaten bereich der homepage, besser gesagt, man kommt da nicht hinein, denn dieser bereich ist geschützt und nur dem eigentümer der homepage zugänglich.
doku
Hier sind die programmiertechniken dokumentiert, mit deren hilfe die homepage gebastelt wurde. Genauer gesagt man findet hier kurz gefasste bechreibungen von HTML, CSS, MySQL und Javascript. Das findet man im Internet natürlich viel ausführlicher aber für einen ersten einstieg in die seltsame welt der programmierung sind diese beschreibungen durchaus brauchbar.